home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-04 / tool_inc.zip / STRLIB.INC < prev    next >
Text File  |  1989-06-02  |  1KB  |  68 lines

  1.  
  2. (*
  3.  * Copyright 1987, 1989 Samuel H. Smith;  All rights reserved
  4.  *
  5.  * This is a component of the ProDoor System.
  6.  * Do not distribute modified versions without my permission.
  7.  * Do not remove or alter this notice or any other copyright notice.
  8.  * If you use this in your own program you must distribute source code.
  9.  * Do not use any of this in a commercial product.
  10.  *
  11.  *)
  12.  
  13. {--
  14.  -- Long string package
  15.  --
  16.  -- Author: S.H.Smith, 25-apr-86
  17.  --
  18.  --}
  19.  
  20.  
  21. {--
  22.  -- Package specification
  23.  --
  24.  --}
  25.  
  26. type
  27.    string_buffer_pointer = ^string_buffer;
  28.    string_buffer = array[1..maxint] of char;
  29.  
  30.    long_string_record = record
  31.       length:      integer;
  32.       max_length:  integer;
  33.       value:       string_buffer_pointer;
  34.    end;
  35.  
  36.    long_string_pointer = ^long_string_record;
  37.    short_string = string[255];
  38.  
  39.  
  40. function new_long_string(max: integer): long_string_pointer;
  41. var
  42.    str: long_string_pointer;
  43.  
  44. begin
  45.    new(str);
  46.    with str^ do
  47.    begin
  48.       length := 0;
  49.       max_length := max;
  50.       getmem(value,str^.max_length);
  51.    end;
  52.    new_long_string := str;
  53. end;
  54.  
  55.  
  56. function copy_long_string(old: long_string_pointer): long_string_pointer;
  57. var
  58.    str: long_string_pointer;
  59.    i:   integer;
  60. begin
  61.    str := new_long_string(old^.max_length);
  62.    str^.length := old^.length
  63.    str^.value^ := old^.value;
  64.    copy_long_string := str;
  65. end;
  66.  
  67.  
  68.